package merisis.util;


public interface BitSet {

	public void set(long index);

	public boolean isEmpty();

	public long cardinality();

	public void or(BitSet s);
	
	public void and(BitSet s);
	
	public void andNot(BitSet s);
	
	public void clear(long x);

	/**
	 * Assume this set object is X, X = X + (A - B).
	 * 
	 * @param a
	 * @param b
	 */
	public void mergeDiff(BitSet a, BitSet b);
	
	public boolean get(long index);
	
	public long nextSetBit(long n);
	
	public BitSetIterator iterator();
	
	public long countIntersectionWith(BitSet b);
	
	public long[] toLongArray();
	
	public BitSet spawn();
}
